package com.alvin.template;

/**
 * 飞机抽象模板类
 * @author alvin.chen    
 * @date 2015年11月26日 上午10:00:44
 */
public abstract class PlaneModel {
	protected abstract void start();
	
	protected abstract void stop();
	
	protected abstract void alarm();
	
	protected abstract void engineBoom();
	
	protected boolean isAlarm() {
		return true;
	}
	
	public final void fly() {
		this.start();
		this.engineBoom();
		if(isAlarm()) {
			this.alarm();
		}
		this.stop();
	}
}
